package com.ray.service;

import com.ray.dao.UserDao;
import com.ray.dao.UserDaoImpl;
import com.ray.pojo.User;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class UserServiceImpl implements UserService
{
    @Override
    public User getUserById(long id)
    {
        // 创建userdao实例
        UserDao userDao = new UserDaoImpl();

        // 根据用户id获取查询结果集
        ResultSet resultSet = userDao.getUserById(id);

        // 声明用户实例
        User user = new User();
        // 如果返回结果集不为空
        if (resultSet != null){
            try
            {
                // 如果结果集中有记录
                if (resultSet.next())
                {
                    // 填充结果集中数据
                    user.setId(resultSet.getInt(1));
                    user.setName(resultSet.getString(2));
                    user.setGender(resultSet.getInt(3));
                }
            }
            catch (SQLException e)
            {
                e.printStackTrace();
            }
        }
        // 返回用户实例
        return user;
    }

    @Override
    public List<User> getAllUser()
    {
        // 创建userdao实例
        UserDao userDao = new UserDaoImpl();

        // 根据用户id获取查询结果集
        ResultSet resultSet = userDao.getAllUser();

        // 声明用户实例List
        List<User> userList = new ArrayList<User>();
        // 如果返回结果集不为空
        if (resultSet != null){
            try
            {
                // 如果结果集中有记录
                while (resultSet.next())
                {
                    // 填充结果集中数据
                    User user = new User();
                    user.setId(resultSet.getInt(1));
                    user.setName(resultSet.getString(2));
                    user.setGender(resultSet.getInt(3));

                    //向list中添加对象
                    userList.add(user);
                }
            }
            catch (SQLException e)
            {
                e.printStackTrace();
            }
        }
        // 返回用户实例
        return userList;
    }

    @Override
    public int addUser(User user)
    {
        // 创建userdao实例
        UserDao userDao = new UserDaoImpl();
        return userDao.addUser(user);
    }

    @Override
    public int updateUser(User user)
    {
        // 创建userdao实例
        UserDao userDao = new UserDaoImpl();
        return userDao.updateUser(user);
    }

    @Override
    public int deleteUser(int id)
    {
        // 创建userdao实例
        UserDao userDao = new UserDaoImpl();
        return userDao.deleteUser(id);
    }
}
